package com.zudada.servermain.POJO.DTO;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import java.util.Date;

@Data
public class VesselBerthingUpdateDTO {
    @ApiModelProperty("靠泊记录ID")
    @NotBlank(message = "停靠记录唯一标识不能为空")
    private String berthId;         // 停靠ID（作为修改条件，也可修改自身）
    @ApiModelProperty("港口ID")
    private String portId;          // 港口ID
    @ApiModelProperty("船舶ID")
    private String vesselId;        // 船舶ID
    @ApiModelProperty("船舶名称")
    private String vesselName;      // 船舶名称
    @ApiModelProperty("船舶类型")
    private String vesselType;      // 船舶类型
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // Jackson 反序列化格式（时区重要，避免时差）
    @ApiModelProperty("靠泊时间")
    private Date berthTime;         // 停靠时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // Jackson 反序列化格式（时区重要，避免时差）
    @ApiModelProperty("离港时间")
    private Date departureTime;     // 离港时间
    @ApiModelProperty("货物信息")
    private String cargoInfo;       // 货物信息（这里简化为String，若需JSON可保持JsonNode）
    @ApiModelProperty("操作人员")
    private String operator;        // 操作人员
    @ApiModelProperty("状态")
    private String status;          // 状态
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // Jackson 反序列化格式（时区重要，避免时差）
    @ApiModelProperty("预计到达时间")
    private Date etaTime;           // 预计到达时间
    @ApiModelProperty("港口拥堵情况")
    private String portCongestion;  // 港口拥堵情况
    @ApiModelProperty("靠泊位置")
    private String berthPosition;   // 停靠位置
    @ApiModelProperty("预计船舶数量")
    private Integer estimatedVesselCount; // 预计船舶数量
}
